package com.jasmine.bjstkserver.manager.weather;

import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.List;

/**
 * @author jasmineXz
 */
@SuppressWarnings("all")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class HeWeatherDTO {

    private String status;
    private Now now;
    private Basic basic;
    private List<Hourly> hourly;
    private List<Daily> daily;


    /**
     * 地域
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private class Basic {
        private String location;    //地区　／城市名称 卓资
        private String cid;         //地区　／城市ID   CN101080402
        private String lat;         //地区　／城市纬度 40.89576
        private String lon;         //地区　／城市经度 112.577702
        private String parent_city; //该地区／城市的上级城市 乌兰察布
        private String admin_area;  //该地区／城市所属行政区域 内蒙古
        private String cnty;        //该地区／城市所属国家名称 中国
        private String tz;          //该地区／城市所在时区    +8.0

        public String getLocation() {
            return location;
        }

        public void setLocation(String location) {
            this.location = location;
        }

        public String getCid() {
            return cid;
        }

        public void setCid(String cid) {
            this.cid = cid;
        }

        public String getLat() {
            return lat;
        }

        public void setLat(String lat) {
            this.lat = lat;
        }

        public String getLon() {
            return lon;
        }

        public void setLon(String lon) {
            this.lon = lon;
        }

        public String getParent_city() {
            return parent_city;
        }

        public void setParent_city(String parent_city) {
            this.parent_city = parent_city;
        }

        public String getAdmin_area() {
            return admin_area;
        }

        public void setAdmin_area(String admin_area) {
            this.admin_area = admin_area;
        }

        public String getCnty() {
            return cnty;
        }

        public void setCnty(String cnty) {
            this.cnty = cnty;
        }

        public String getTz() {
            return tz;
        }

        public void setTz(String tz) {
            this.tz = tz;
        }
    }

    /**
     * 当前天气
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    static class Now {
        private String obsTime;    // 实况观测时间
        private String temp;       // 实况温度，默认单位：摄氏度
        private String feelsLike;  // 实况体感温度，默认单位：摄氏度
        private String icon;       // 当前天气状况和图标的代码
        private String iconValue;
        private String text;      // 实况天气状况的文字描述，包括阴晴雨雪等天气状态的描述
        private String wind360;   // 实况风向360角度
        private String windDir;   // 实况风向
        private String windScale; // 实况风力等级
        private String windSpeed; // 实况风速，公里/小时
        private String humidity;  // 实况相对湿度，百分比数值
        private String precip;    // 实况降水量，默认单位：毫米
        private String pressure;  // 实况大气压强，默认单位：百帕
        private String vis	;     // 实况能见度，默认单位：公里
        private String cloud;     // 实况云量，百分比数值
        private String dew;       // 实况露点温度

        public String getObsTime() {
            return obsTime;
        }

        public void setObsTime(String obsTime) {
            this.obsTime = obsTime;
        }

        public String getTemp() {
            return temp;
        }

        public void setTemp(String temp) {
            this.temp = temp;
        }

        public String getFeelsLike() {
            return feelsLike;
        }

        public void setFeelsLike(String feelsLike) {
            this.feelsLike = feelsLike;
        }

        public String getIcon() {
            return icon;
        }

        public void setIcon(String icon) {
            this.icon = icon;
        }

        public String getIconValue() {
            return iconValue;
        }

        public void setIconValue(String iconValue) {
            this.iconValue = iconValue;
        }

        public String getText() {
            return text;
        }

        public void setText(String text) {
            this.text = text;
        }

        public String getWind360() {
            return wind360;
        }

        public void setWind360(String wind360) {
            this.wind360 = wind360;
        }

        public String getWindDir() {
            return windDir;
        }

        public void setWindDir(String windDir) {
            this.windDir = windDir;
        }

        public String getWindScale() {
            return windScale;
        }

        public void setWindScale(String windScale) {
            this.windScale = windScale;
        }

        public String getWindSpeed() {
            return windSpeed;
        }

        public void setWindSpeed(String windSpeed) {
            this.windSpeed = windSpeed;
        }

        public String getHumidity() {
            return humidity;
        }

        public void setHumidity(String humidity) {
            this.humidity = humidity;
        }

        public String getPrecip() {
            return precip;
        }

        public void setPrecip(String precip) {
            this.precip = precip;
        }

        public String getPressure() {
            return pressure;
        }

        public void setPressure(String pressure) {
            this.pressure = pressure;
        }

        public String getVis() {
            return vis;
        }

        public void setVis(String vis) {
            this.vis = vis;
        }

        public String getCloud() {
            return cloud;
        }

        public void setCloud(String cloud) {
            this.cloud = cloud;
        }

        public String getDew() {
            return dew;
        }

        public void setDew(String dew) {
            this.dew = dew;
        }
    }

    /**
     * 天气预报
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    static class Daily {
        private String fxDate;        // 预报日期2013-12-30
        private String tempMax;          // 预报当天最高温度
        private String tempMin;          // 预报当天最低温度
        private String iconDay;
        private String iconValueDay;
        private String textDay;
        private String iconNight;
        private String iconValueNight;
        private String textNight;

        public String getFxDate() {
            return fxDate;
        }

        public void setFxDate(String fxDate) {
            this.fxDate = fxDate;
        }

        public String getTempMax() {
            return tempMax;
        }

        public void setTempMax(String tempMax) {
            this.tempMax = tempMax;
        }

        public String getTempMin() {
            return tempMin;
        }

        public void setTempMin(String tempMin) {
            this.tempMin = tempMin;
        }

        public String getIconDay() {
            return iconDay;
        }

        public void setIconDay(String iconDay) {
            this.iconDay = iconDay;
        }

        public String getIconValueDay() {
            return iconValueDay;
        }

        public void setIconValueDay(String iconValueDay) {
            this.iconValueDay = iconValueDay;
        }

        public String getTextDay() {
            return textDay;
        }

        public void setTextDay(String textDay) {
            this.textDay = textDay;
        }

        public String getIconNight() {
            return iconNight;
        }

        public void setIconNight(String iconNight) {
            this.iconNight = iconNight;
        }

        public String getIconValueNight() {
            return iconValueNight;
        }

        public void setIconValueNight(String iconValueNight) {
            this.iconValueNight = iconValueNight;
        }

        public String getTextNight() {
            return textNight;
        }

        public void setTextNight(String textNight) {
            this.textNight = textNight;
        }
    }

    /**
     * 逐小时预报
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    static class Hourly {
        private String fxTime;    // 逐小时预报时间
        private String temp;      // 逐小时预报温度
        private String icon;      // 逐小时预报天气状况图标代码
        private String iconValue; // 图标
        private String text;      // 逐小时预报天气状况文字描述

        public String getFxTime() {
            return fxTime;
        }

        public void setFxTime(String fxTime) {
            this.fxTime = fxTime;
        }

        public String getTemp() {
            return temp;
        }

        public void setTemp(String temp) {
            this.temp = temp;
        }

        public String getIcon() {
            return icon;
        }

        public void setIcon(String icon) {
            this.icon = icon;
        }

        public String getIconValue() {
            return iconValue;
        }

        public void setIconValue(String iconValue) {
            this.iconValue = iconValue;
        }

        public String getText() {
            return text;
        }

        public void setText(String text) {
            this.text = text;
        }
    }


    public Now getNow() {
        return now;
    }

    public void setNow(Now now) {
        this.now = now;
    }

    public Basic getBasic() {
        return basic;
    }

    public void setBasic(Basic basic) {
        this.basic = basic;
    }

    public List<Daily> getDaily() {
        return daily;
    }

    public void setDaily(List<Daily> daily) {
        this.daily = daily;
    }

    public List<Hourly> getHourly() {
        return hourly;
    }

    public void setHourly(List<Hourly> hourly) {
        this.hourly = hourly;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}
